通信顺序进程
概述
由C.A.R. Hoare在1978年提出的并发编程模型,主张通过同步消息传递而非共享内存来实现进程间通信。
关键内容
-
核心理念:并发程序由多个独立的顺序进程组成,进程之间通过同步的消息传递进行通信,避免共享内存带来的复杂性。
-
进程定义:每个进程内部是严格顺序的,拥有私有状态,不与其他进程共享变量。复杂性只存在于进程之间的交互中。
-
同步通信:采用P!e(输出)和P?x(输入)命令,通信过程是同步的,发送方和接收方必须同时准备好才能完成通信,这被称为"会合"(rendezvous)。
-
守卫命令:允许将输入命令作为守卫条件,使进程可以同时监听多个通信伙伴,根据谁先准备好来决定下一步动作。
-
表达能力:通过经典示例如缓冲进程、素数筛法、哲学家就餐问题等,展示了CSP在并发编程中的强大表达能力。
-
形式化验证:为并发系统的推理和验证奠定了基础,后续发展出完整的代数理论和验证工具。
来源
- 14-hoare-csp — 详细理论分析
- [[]] —
相关
- C.A.R. Hoare — 理论提出者
- occam — CSP的直接语言实现
- Erlang — 受CSP影响的编程语言
- Go — 现代CSP理念的体现
- Actor Model — 相关并发模型
- 共享内存 — CSP所替代的传统模型